﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MedicalAssistant.core
{
    [Serializable]
    public class Endereco
    {
        private string rua;
        private string numero;
        private string apartamento;
        private string bloco;
        private string bairro;
        private string cidade;
        private string estado;
        private string distrito;
        private string cep;

        public Endereco(string rua, string numero, string bairro, string cidade, 
            string estado, string apartamento, string bloco, string distrito, string cep)
        {
            this.apartamento = apartamento;
            this.bloco = bloco;
            this.distrito = distrito;
            this.cep = cep;
            this.Rua = rua;
            this.Numero = numero;
            this.Bairro = bairro;
            this.Cidade = cidade;
            this.Estado = estado;
        }

        public string Rua
        {
            get { return rua; }
            set
            {
                if (String.IsNullOrEmpty(value))
                {
                    throw new ExcecaoDoSistema("Rua obrigatória.");
                }
                rua = value.Trim();
            }
        }

        public string Numero
        {
            get { return numero; }
            set
            {

                if (String.IsNullOrEmpty(value))
                {
                    throw new ExcecaoDoSistema("Número obrigatório.");
                }
                numero = value.Trim();
            }
        }

        public string Apartamento
        {
            get { return apartamento; }
            set { apartamento = value; }
        }

        public string Bloco
        {
            get { return bloco; }
            set { bloco = value; }
        }

        public string Bairro
        {
            get { return bairro; }
            set
            {
                if (String.IsNullOrEmpty(value))
                {
                    throw new ExcecaoDoSistema("Bairro obrigatório.");
                }
                bairro = value.Trim();
            }
        }

        public string Cidade
        {
            get { return cidade; }
            set
            {
                if (String.IsNullOrEmpty(value))
                {
                    throw new ExcecaoDoSistema("Cidade obrigatória.");
                }
                cidade = value.Trim();
            }
        }

        public string Estado
        {
            get { return estado; }
            set
            {
                if (String.IsNullOrEmpty(value))
                {
                    throw new ExcecaoDoSistema("Estado obrigatório.");
                }
                estado = value.Trim();
            }
        }

        public string Distrito
        {
            get { return distrito; }
            set { distrito = value; }
        }

        public string Cep
        {
            get { return cep; }
            set { cep = value; }
        }
    }
}
